Uživatelský profil

linux.edumach.cz


Východiska

Filozofie operačního systému Unix se od filozofie jiných operačních systémů podstatně liší v jedné věci. Autoři Unixu se nepokoušeli předvídat všechny potřeby všech uživatelů. Místo toho se pokusili navrhnout operační systém tak, aby si každý uživatel pracovní prostředí svého operačního systému snadno upravil sám podle svých potřeb.

Konfigurační soubory

Konfigurace jednotlivých programů operačního systému Unix se definuje prostřednictvím tzv. konfiguračních souborů. Toto je asi nejtypičtější rys všech unixových systémů.

V Unixu bývají konfigurační soubory různého typu:

Nejdůležitější konfigurační soubory jsou ty, které používá příkazový interpret. No a tímto je v operačním systému Linux bash (/usr/bin/bash).

Důležité soubory profilu

Mezi další soubory vašeho profilu patří tyto. Pod pojmem “soubor” chápejte “skript”:

~/.bashrc

Tento soubor je spuštěn při přihlášení uživatele pomocí shellu Bash. Je často používán k inicializaci prostředí nebo nastavení různých proměnných prostředí, které mají být k dispozici během celého sezení. Není doporučené jej upravovat. Neodbornou úpravou si můžete váš profil poškodit.

~/.bash_profile 

Tento soubor je spuštěn při přihlášení uživatele pomocí shellu Bash. Je často používán k inicializaci prostředí nebo nastavení různých proměnných prostředí, které mají být k dispozici během celého sezení.

~/.profile 

Tento soubor je spouštěn při přihlášení uživatele bez ohledu na to, který shell je používán. Obsahuje obecné inicializační příkazy pro uživatelské prostředí, jako je nastavení cest (PATH), inicializace X Window System (grafické uživatelské rozhraní) nebo nastavení jazyka a lokalizace.

~/.bash_history 

Tento soubor obsahuje historii příkazů, které uživatel zadává do shellu Bash. Každý úspěšně provedený příkaz se automaticky zaznamenává do tohoto souboru, což umožňuje uživatelům procházet a opakovat dříve zadávané příkazy.

~/.bash_login 

Tento soubor je spuštěn pouze při přihlášení uživatele pomocí shellu Bash. Má podobnou funkci jako ~/.bash_profile a často se používá k inicializaci prostředí pro interaktivní sezení.

~/.bash_logout 

Tento soubor je spuštěn při odhlášení uživatele ze shellu Bash. Typické využití zahrnuje čištění dočasných souborů, ukládání historie nebo provádění jiných úkonů před ukončením sezení.

~/.ssh/config 

Soubor ~/.ssh/config slouží k nastavení konfigurace pro klienta SSH (Secure Shell). Jeho hlavním účelem je umožnit uživatelům definovat různé parametry připojení pro jednotlivé vzdálené servery, což usnadňuje a zjednodušuje proces připojování se k nim. Více informací v tématu “SSH klíče”.

Ne nutně všechny tyto soubory ve vašem profilu najdete. Pokud tam není ten, který potřebujete použít, pak jej prostě vytvoříte. Jak prosté 😃

.bash_profile

Soubor ~/.bash_profile slouží k nastavení uživatelského prostředí pro shell Bash, který se spustí při přihlášení uživatele do systému. Obsahuje nastavení proměnných prostředí, definice aliasů, spouštění programů nebo skriptů a další úkoly, které mají být provedeny při každém přihlášení uživatele. Tímto způsobem umožňuje uživatelům přizpůsobit své pracovní prostředí a provést automatické inicializační kroky při každém spuštění shellu.

Nyní si ukážeme několik užitečných úprav a „vylepšení“ .bash_profile:

Aliasy

Pomocí tzv. aliasů můžete vytvořit nebo upravit příkazy, které píšete do terminálu. Aliasy vkládejte na konec souboru ~/.bash_profile). Syntaxe aliasu je následující:

alias prikaz="upraveny prikaz" 

nebo

alias prikazA="prikazB" 

Několik příkladů:

Takovýchto „vylepšení“ si můžete vytvořit libovolný počet.

⚠️ POZNÁMKA: Všechny změny v souboru .bash_profile se projeví (aktivují) až při příštím přihlášení uživatele do terminálu. Rychlejším způsobem aktivace je příkazem source:

$ source ~/.bash_profile 

vždy po úpravě v souboru .bash_profile.

Úprava vzhledu promptu

V Debianu (a jeho odvozeninách) vypadá prompt nějak takto:

uzivatel@pocitac:~$ 

V distribuci Fedora vypadá nějak takto:

[uzivatel@pocitac ~]$ 

Na TuXovi takto:

jmeno@tux ~
$

Jinými slovy, vzhled, množství a pořadí informací se může lišit. Pokud vám stávající vzhled promptu nevyhovuje, není problém si vytvořit vlastní. Například ten v Debianu má kód:

PS1="\[\e[36m\]\u\[\e[m\]@\[\e[32m\]\h:\[\e[33;1m\]\w\[\e[m\]\n$ " 

Ano, kód vypadá dost krkolomně. Většinu kódu tvoří definice barev. Bez nich by řádek vypadal mnohem srozumitelněji:

PS1="\u@\h:\w\n$ " 

Konkrétní kód vašeho profilu (systémovou proměnnou $PS1) si můžete jednoduše vypsat:

$ echo $PS1 

V promptu můžete kromě běžných znaků jako @ a :, použít různé speciální kódy, které budou nahrazeny aktuálními informacemi o vašem systému nebo prostředí. Seznam některých běžně používaných:

Další kódy barev:

Barva Běžné písmo Tučné písmo Podtržení Pozadí písma
Black "\e[0;30m\]" "\e[1;30m\]" "\e[4;30m\]" "\e[40m\]"
Red "\e[0;31m\]" "\e[1;31m\]" "\e[4;31m\]" "\e[41m\]"
Green "\e[0;32m\]" "\e[1;32m\]" "\e[4;32m\]" "\e[42m\]"
Yellow "\e[0;33m\]" "\e[1;33m\]" "\e[4;33m\]" "\e[43m\]"
Blue "\e[0;34m\]" "\e[1;34m\]" "\e[4;34m\]" "\e[44m\]"
Purple "\e[0;35m\]" "\e[1;35m\]" "\e[4;35m\]" "\e[45m\]"
Cyan "\e[0;36m\]" "\e[1;36m\]" "\e[4;36m\]" "\e[46m\]"
White "\e[0;37m\]" "\e[1;37m\]" "\e[4;37m\]" "\e[47m\]"

Reset barvy: "\e[0m\]"

TIP: Pokud vám paleta barev nestačí, můžete použít RGB notaci: \e[s;38;2;r;g;bm

Kde s je styl a r,g,b jsou desítková čísla v rozsahu 0-255. Aby nebyl řádek PS1= příliš dlouhý (a tudíž nepřehledný), je výhodnější si barvy uložit do proměnných a v řádku PS1= se na ně pouze odkazovat. Jsme přeci v prostředí bashe :):

R="\[\e[38;2;255;100;100m\]" 
G="\[\e[38;2;100;255;100m\]" 
B="\[\e[38;2;100;100;255m\]" 
W="\[\e[0m\]" 
PS1="[$R\u$W@$B\h$W:$G\w$W]$ " 

Problematika barev v terminálu je mnohem rozsáhlejší. Pro zájemce odkazy:

  1. https://talyian.github.io/ansicolors/
  2. https://sweworld.net/linux/terminal/escape_code
  3. https://robotmoon.com/256-colors/

Jak na vlastní prompt

Editujte soubor ~/.bash_profile a zapište do něj kód výše (ten v té tabulce). Uložte a aktivujte:

$ nano ~/.bash_profile  
$ source ~/.bash_profile

Výchozí textový editor

Příkazem select-editor se vám zobrazí nabídka textových editorů (i těch nenainstalovaných):

Select an editor.  To change later, run 'select-editor'.
  1. /usr/bin/joe
  2. /usr/bin/jstar
  3. /usr/bin/jpico
  4. /usr/bin/jmacs
  5. /bin/nano        <---- easiest
  6. /usr/bin/vim.basic
  7. /usr/bin/rjoe
  8. /usr/bin/mcedit
  9. /usr/bin/vim.tiny

Choose 1-9 [5]:

Zvolte si jeden z nainstalovaných (v Debianu je zcela jistě nainstalovaný nano). Tím se ve vašem domovském adresáři vytvoří soubor .selected_editor s obsahem:

# Generated by /usr/bin/select-editor
SELECTED_EDITOR="/usr/bin/nano" 

Nastavení je platné okamžitě, není nutné ji aktivovat.

Barvy v terminálu

Na našem systému máme výpis hezky barevný. Toto není automatický a výchozí vzhled. Pokud jste v terminálu, který není barevný, můžete si je snadno přidat.

Příkaz ls --color=always ve výchozím nastavení vypíše obsah adresáře barevně, kde

Chcete-li změnit barvy podle potřeby z výchozího nastavení, musí být nastaveny dvě proměnné prostředí, a to CLICOLOR a LSCOLORS.

Do ~/.bash_profile přidejte následující řádky:

export CLICOLOR=1 
export LSCOLORS=GxFxCxDxBxegedabagaced 

Uložte jej a aktivujte:

$ source ~/.bash_profile 

Poznámka: Co znamená zdánlivě nesrozumitelný kód GxFxCxDxBxegedabagaced? Hodnota této proměnné popisuje, jaká barva se má použít pro který atribut, když jsou barvy povoleny pomocí CLICOLOR. Tento řetězec je zřetězením dvojic formátu fb, kde f je barva popředí a b je barva pozadí.

Barevná označení jsou následující:

Pořadí dvojic je následující:

  1. Adresář
  2. Symbolický odkaz (symlink)
  3. Socket
  4. Roura
  5. Spustitelný
  6. Blokové zařízení
  7. Znakové zařízení
  8. Spustitelný s nastaveným UID bitem
  9. Spustitelný s nastaveným GID bitem
  10. Zapisovatelný adresář pro ostatní, se sticky bitem
  11. Zapisovatelný adresář pro ostatní, bez sticky bitu

Celkem 22 znaků (jedenáct dvojic)

Zdroj: https://stackoverflow.com/questions/54818298/how-to-color-ls-according-to-file-extension-in-iterm2

.nanorc

Nano je uživatelsky přívětivý textový editor s jednoduchým uživatelským rozhraním, který nabízí základní funkce pro úpravu textu v terminálu. Jeho vzhled se dá nastavit pomocí různých kódů set <hodnota>, viz https://www.nano-editor.org/dist/latest/nanorc.5.html

Do konfiguračního souboru ~/.nanorc si uložte tyto řádky (používám já):

set softwrap
set linenumbers
set numbercolor yellow
set tabsize 4
set tabstospaces
set titlecolor blue, cyan
set keycolor cyan
set functioncolor cyan
set smarthome

Poznámka: Výše popsané se týká vzhledu a chování editoru jako takového. Barevné zvýraznění obsahu editovaného souboru je automatické (nastavuje se jinak a jinde).

Nano nastavuje barevné zvýraznění syntaxe pomocí konfiguračních souborů s příponou .nanorc, které se v Debianu nacházejí v adresáři /usr/share/nano/ (v jiných distribucích mohou být v /etc/nano/):

$ ls /usr/share/nano/
asm.nanorc        email.nanorc       makefile.nanorc  po.nanorc
autoconf.nanorc   extra              man.nanorc       python.nanorc
awk.nanorc        go.nanorc          markdown.nanorc  ruby.nanorc
changelog.nanorc  groff.nanorc       nanohelp.nanorc  rust.nanorc
cmake.nanorc      guile.nanorc       nanorc.nanorc    sh.nanorc
c.nanorc          haskell.nanorc     nftables.nanorc  sql.nanorc
css.nanorc        html.nanorc        objc.nanorc      tcl.nanorc
debian            java.nanorc        ocaml.nanorc     texinfo.nanorc
debian.nanorc     javascript.nanorc  patch.nanorc     tex.nanorc
default.nanorc    json.nanorc        perl.nanorc      xml.nanorc
elisp.nanorc      lua.nanorc         php.nanorc       yaml.nanorc

Úprava: pokud z nějakého důvodu chcete upravit systémový soubor nazev.nanorc, postupujte takto (příklad pro soubor c.nanorc):

  1. Vytvořte si skrytý adresář ~/.nano
  2. Zkopírujte do něj soubor c.nanorc: cp /usr/share/nano/c.nanorc ~/.nano/
  3. Upravte jej podle svých potřeb.
  4. Do konfiguračního souboru ~/.nanorc přidejte cestu ke konfiguračnímu souboru c.nanorc. Například, pokud je soubor c.nanorc uložený v adresáři ~/.nano, přidejte řádek include ~/.nano/c.nanorc.